package com.yls.except.controller;

import com.yls.except.service.IndentService;
import com.yls.except.util.exception.ExceptionHandle;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import wxap.com.demo.Notify;
import wxap.com.demo.WxPayResult;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.util.Map;

/**
 * 支付回调
 * Created by xufan on 2016/8/24.
 */
@Controller
@RequestMapping(value = "paycontroller")
public class PayController extends ExceptionHandle {
    @Resource(name = "indentService")
    private IndentService indentService;

    /**
     * 支付回调测试
     * @param req
     * @param resp
     */
    @RequestMapping(value="payreturn.do")
    public void payreturn(HttpServletRequest req, HttpServletResponse resp) {
        String indentnum = req.getParameter("indentnum");
        String returnnum = req.getParameter("returnnum");
        String totalfee = req.getParameter("totalfee");
        indentService.updatePayReturn(indentnum, totalfee, 1, returnnum, resp);
    }
//
//    /**
//     * 支付宝回调
//     *
//     * @param req
//     * @param resp
//     */
//    @RequestMapping(value = "alipayreturn.do")
//    public void alipayreturn(HttpServletRequest req, HttpServletResponse resp) {
//        Logger logger = Logger.getLogger(PayController.class);
//        PrintWriter out = null;
//        try {
//            out = resp.getWriter();
//        } catch (IOException e1) {
//            e1.printStackTrace();
//        }
//
//        logger.info("out_trade_no" + req.getParameter("out_trade_no") + "");
//        logger.info("trade_no" + req.getParameter("trade_no") + "");
//        logger.info("trade_status" + req.getParameter("trade_status") + "");
//        logger.info("total_amount" + req.getParameter("total_amount") + "");
//        String out_trade_no = null;
//        // 获取支付宝POST过来反馈信息
//        Map<String, String> params = new HashMap<String, String>();
//        Map requestParams = req.getParameterMap();
//        System.out.println("支付宝返回的map集合：" + requestParams);
//        logger.info(requestParams);
//        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
//            String name = (String) iter.next();
//            logger.info("name:" + name );
//            String[] values = (String[]) requestParams.get(name);
//            String valueStr = "";
//            for (int i = 0; i < values.length; i++) {
//                valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
//            }
//            // 乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
//            // valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
//            params.put(name, valueStr);
//            logger.info(valueStr);
//        }
//        boolean signVerified = false; //调用SDK验证签名
//        try {
//            out_trade_no = new String(req.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8");
//            String trade_no = new String(req.getParameter("trade_no").getBytes("ISO-8859-1"), "UTF-8");
//            String trade_status = new String(req.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8");
//            // 交易状态
//            String total_fee = new String(req.getParameter("total_amount").getBytes("ISO-8859-1"), "UTF-8");
//            signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ali_public_key, AlipayConfig.input_charset);
//            logger.info("签名结果：" + signVerified);
//            if(signVerified){
//                // TODO 验签成功后
//                // 按照支付结果异步通知中的描述，对支付结果中的业务内容进行1\2\3\4二次校验，校验成功后在response中返回success，校验失败返回failure
//                // ////////////////////////////////////////////////////////////////////////////////////////
//                // 请在这里加上商户的业务逻辑程序代码
//                System.out.println("支付宝验证成功了！！");
//                System.out.println("商户订单号：" + out_trade_no);
//                System.out.println("支付宝交易号：" + trade_no);
//                System.out.println("交易状态：" + trade_status);
//                System.out.println("交易金额：" + total_fee);
//                // ——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
//                if (trade_status.equals("TRADE_FINISHED")) {
//                    // 判断该笔订单是否在商户网站中已经做过处理
//                    // 如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
//                    // 如果有做过处理，不执行商户的业务程序
//                    System.out.println("不支持退款功能的前提下，付款成功了");
//                    // 注意：
//                    // 该种交易状态只在两种情况下出现
//                    // 1、开通了普通即时到账，买家付款成功后。
//                    // 2、开通了高级即时到账，从该笔交易成功时间算起，过了签约时的可退款时限（如：三个月以内可退款、一年以内可退款等）后。
//                } else if (trade_status.equals("WAIT_BUYER_PAY")) {
//                    // 交易创建，等待买家付款
//                    Map map = new HashMap<String, String>();
//                    map.put("alipayNumber", trade_no);
//                    map.put("indent_number", out_trade_no);
//                    System.out.println("支付宝交易流水号：" + trade_no);// 退款的时候需要用到
//                    System.out.println("商户的订单编号：" + out_trade_no);
//                    // 将该流水号存入数据库
//                    indentService.inserttradeno(map);
//                } else if (trade_status.equals("TRADE_SUCCESS")) {
//                    System.out.println("支持退款功能的前提下支付成功了");
//                    String indentnumber = out_trade_no;
//                    indentService.updatePayReturn(indentnumber, ((int)(Double.parseDouble(total_fee) * 100)) + "", 1, trade_no);// 修改订单状态至已付款
//                    // 修改用户积分
//                    // 修改商品数量
//                    // 判断该笔订单是否在商户网站中已经做过处理
//                    // 如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
//                    // 如果有做过处理，不执行商户的业务程序
//
//                    // 注意：
//                    // 该种交易状态只在一种情况下出现——开通了高级即时到账，买家付款成功后。
//                } else {
//                    System.out.println("支付失败！可以能是用户取消了支付，或其他问题！");
//                }
//                out.println("success"); // 请不要修改或删除
//                System.out.println("success已经返回给支付宝了！");
//            } else {// 验证失败
//                out.println("fail");
//                System.out.println("fail已经返回给支付宝了！");
//            }
//        } catch (AlipayApiException e) {
//            e.printStackTrace();
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//
//
//
//        // 获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//        // 商户订单号
////        try {
////            logger.info("out_trade_no" + req.getParameter("out_trade_no") + "");
////            logger.info("trade_no" + req.getParameter("trade_no") + "");
////            logger.info("trade_status" + req.getParameter("trade_status") + "");
////            logger.info("total_amount" + req.getParameter("total_amount") + "");
////            String out_trade_no = new String(req.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8");
////            // 支付宝交易号
////            String trade_no = new String(req.getParameter("trade_no").getBytes("ISO-8859-1"), "UTF-8");
////            System.out.println(trade_no + "支付宝交易流水号");
////            // 交易状态
////            String trade_status = new String(req.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8");
////            String total_fee = new String(req.getParameter("total_amount").getBytes("ISO-8859-1"), "UTF-8");
////            System.out.println("交易金额：" + total_fee);
////            // 获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)//
////
//////            Map<String, String> paramsMap = ... //将异步通知中收到的待验证所有参数都存放到map中
////
////            if (AlipayNotify.verify(params)) {// 验证成功
////                // ////////////////////////////////////////////////////////////////////////////////////////
////                // 请在这里加上商户的业务逻辑程序代码
////                System.out.println("支付宝验证成功了！！");
////                System.out.println("商户订单号：" + out_trade_no);
////                System.out.println("支付宝交易号：" + trade_no);
////                System.out.println("交易状态：" + trade_status);
////                System.out.println("交易金额：" + total_fee);
////                // ——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
////                if (trade_status.equals("TRADE_FINISHED")) {
////                    // 判断该笔订单是否在商户网站中已经做过处理
////                    // 如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
////                    // 如果有做过处理，不执行商户的业务程序
////                    System.out.println("不支持退款功能的前提下，付款成功了");
////                    // 注意：
////                    // 该种交易状态只在两种情况下出现
////                    // 1、开通了普通即时到账，买家付款成功后。
////                    // 2、开通了高级即时到账，从该笔交易成功时间算起，过了签约时的可退款时限（如：三个月以内可退款、一年以内可退款等）后。
////                } else if (trade_status.equals("WAIT_BUYER_PAY")) {
////                    // 交易创建，等待买家付款
////                    Map map = new HashMap<String, String>();
////                    map.put("alipayNumber", trade_no);
////                    map.put("indent_number", out_trade_no);
////                    System.out.println("支付宝交易流水号：" + trade_no);// 退款的时候需要用到
////                    System.out.println("商户的订单编号：" + out_trade_no);
////                    // 将该流水号存入数据库
////                    indentService.inserttradeno(map);
////                } else if (trade_status.equals("TRADE_SUCCESS")) {
////                    System.out.println("支持退款功能的前提下支付成功了");
////                    String indentnumber = out_trade_no;
////                    indentService.updatePayReturn(indentnumber, ((int)(Double.parseDouble(total_fee) * 100)) + "", 1, trade_no);// 修改订单状态至已付款
////                    // 修改用户积分
////                    // 修改商品数量
////                    // 判断该笔订单是否在商户网站中已经做过处理
////                    // 如果没有做过处理，根据订单号（out_trade_no）在商户网站的订单系统中查到该笔订单的详细，并执行商户的业务程序
////                    // 如果有做过处理，不执行商户的业务程序
////
////                    // 注意：
////                    // 该种交易状态只在一种情况下出现——开通了高级即时到账，买家付款成功后。
////                } else {
////                    System.out.println("支付失败！可以能是用户取消了支付，或其他问题！");
////                }
////                out.println("success"); // 请不要修改或删除
////                System.out.println("success已经返回给支付宝了！");
////            } else {// 验证失败
////                out.println("fail");
////                System.out.println("fail已经返回给支付宝了！");
////            }
////        } catch (UnsupportedEncodingException e) {
////            e.printStackTrace();
////        }
//    }
//
    /**
     * 微信支付回调
     *
     * @param req
     * @param resp
     */
    @RequestMapping(value = "wechatreturn.do")
    public void wechatRetrun(HttpServletRequest req, HttpServletResponse resp) {
        String inputLine;
        String notityXml = "";
        String resXml = "";

        try {
            while ((inputLine = req.getReader().readLine()) != null) {
                notityXml += inputLine;
            }
            req.getReader().close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("接收到的报文：" + notityXml);

        Map m = Notify.parseXmlToList2(notityXml);
        WxPayResult wpr = new WxPayResult();
        wpr.setAppid(m.get("appid").toString());
        wpr.setBankType(m.get("bank_type").toString());
        wpr.setCashFee(m.get("cash_fee").toString());
        wpr.setFeeType(m.get("fee_type").toString());
        wpr.setIsSubscribe(m.get("is_subscribe").toString());
        wpr.setMchId(m.get("mch_id").toString());
        wpr.setNonceStr(m.get("nonce_str").toString());
        wpr.setOpenid(m.get("openid").toString());
        wpr.setOutTradeNo(m.get("out_trade_no").toString());
        wpr.setResultCode(m.get("result_code").toString());
        wpr.setReturnCode(m.get("return_code").toString());
        wpr.setSign(m.get("sign").toString());
        wpr.setTimeEnd(m.get("time_end").toString());
        wpr.setTotalFee(m.get("total_fee").toString());
        wpr.setTradeType(m.get("trade_type").toString());
        wpr.setTransactionId(m.get("transaction_id").toString());

        String out_trade_no = wpr.getOutTradeNo();
        String total_fee = wpr.getTotalFee();
        String transaction_id = wpr.getTransactionId();
        System.out.println(out_trade_no + ":" + total_fee + ":" + transaction_id + ":" + wpr.getResultCode());
        if ("SUCCESS".equals(wpr.getResultCode())) {
            //支付成功
            indentService.updatePayReturn(out_trade_no, total_fee + "", 2, transaction_id, resp);
            resXml = "<xml>" + "<return_code><![CDATA[SUCCESS]]></return_code>"
                    + "<return_msg><![CDATA[OK]]></return_msg>" + "</xml> ";
        } else {
            resXml = "<xml>" + "<return_code><![CDATA[FAIL]]></return_code>"
                    + "<return_msg><![CDATA[报文为空]]></return_msg>" + "</xml> ";
        }

        System.out.println("微信支付回调数据结束");

        BufferedOutputStream out = null;
        try {
            out = new BufferedOutputStream(resp.getOutputStream());
            out.write(resXml.getBytes());
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
//
//    /**
//     * 银联支付回调
//     *
//     * @param req
//     * @param resp
//     */
//    @RequestMapping(value = "unionpayreturn.do")
//    public void UnionPayReturn(HttpServletRequest req, HttpServletResponse resp) {
//        Logger logger = Logger.getLogger(PayController.class);
//        logger.info("回调开始");
//        try {
//            req.setCharacterEncoding("UTF-8");
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//        String encoding = req.getParameter(SDKConstants.param_encoding);
//        // 获取银联通知服务器发送的后台通知参数
//        Map<String, String> reqParam = BackRcvResponse.getAllRequestParam(req);
//
//        LogUtil.printRequestLog(reqParam);
//
//        Map<String, String> valideData = null;
//        if (null != reqParam && !reqParam.isEmpty()) {
//            Iterator<Map.Entry<String, String>> it = reqParam.entrySet().iterator();
//            valideData = new HashMap<String, String>(reqParam.size());
//            while (it.hasNext()) {
//                Map.Entry<String, String> e = it.next();
//                String key = (String) e.getKey();
//                String value = (String) e.getValue();
//                try {
//                    value = new String(value.getBytes("UTF-8"), encoding);
//                } catch (UnsupportedEncodingException e1) {
//                    e1.printStackTrace();
//                }
//                valideData.put(key, value);
//            }
//        }
//
//        //重要！验证签名前不要修改reqParam中的键值对的内容，否则会验签不过
//        String txnAmt = valideData.get("txnAmt");
////        double money = Double.parseDouble(txnAmt);
//        // 请在这里加上商户的业务逻辑程序代码
//        String order_id = valideData.get("orderId");
//        String origQryId = valideData.get("queryId");
//        String txnTime = valideData.get("txnTime");
//        if (!SDKUtil.validate(valideData, encoding)) {
//            LogUtil.writeLog("验证签名结果[失败].");
//            //验签失败，需解决验签问题
//            Map map = new HashMap<String, String>();
//            map.put("indent_number", order_id);
//            map.put("alipayNumber", origQryId);
//            indentService.inserttradeno(map);
//        } else {
//            LogUtil.writeLog("验证签名结果[成功].");
//            //【注：为了安全验签成功才应该写商户的成功处理逻辑】交易成功，更新商户订单状态
//            String orderId = valideData.get("orderId"); //获取后台通知的数据，其他字段也可用类似方式获取
//            String respCode = valideData.get("respCode"); //获取应答码，收到后台通知了respCode的值一般是00，可以不需要根据这个应答码判断。
//            indentService.updatePayReturn(order_id, txnAmt + "", 2, origQryId);// 修改订单状态至已付款
//        }
//        LogUtil.writeLog("BackRcvResponse接收后台通知结束");
//        //返回给银联服务器http 200  状态码
//        try {
//            resp.getWriter().print("ok");
//        } catch (IOException e) {
//        }
//    }
//
//    /**
//     * 百度钱包回调
//     *
//     * @param req
//     * @param resp
//     */
//    @RequestMapping(value="baiduwalletreturn.do")
//    public void baiduwalletReturn(HttpServletRequest req, HttpServletResponse resp) {
//
//    }
//
//    /**
//     * 易宝支付回调
//     *
//     * @param req
//     * @param resp
//     */
//    @RequestMapping(value="yeepayreturn.do")
//    public void yeepayReturn(HttpServletRequest req, HttpServletResponse resp) {
//
//    }
//
//    /**
//     * 银联退款回调
//     * @param req
//     * @param resp
//     */
//    @RequestMapping(value = "unionpayrefundreturn.do")
//    public void unionpayRefundReturn(HttpServletRequest req, HttpServletResponse resp) {
//        Logger logger = Logger.getLogger(PayController.class);
//        logger.info("退款回调开始");
//        PrintWriter out;
//        try {
//            out = resp.getWriter();
//            Map<String, String> params = new HashMap<String, String>();
//            Map requestParams = req.getParameterMap();
//            for (Iterator iter = requestParams.keySet().iterator(); iter
//                    .hasNext();) {
//                String name = (String) iter.next();
//                String[] values = (String[]) requestParams.get(name);
//                String valueStr = "";
//                for (int i = 0; i < values.length; i++) {
//                    valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
//                }
//                params.put(name, valueStr);
//            }
//            logger.info("验证结果:" + com.unionpay.acp.sdk.SDKUtil.validate(params, "UTF-8"));
//            if (com.unionpay.acp.sdk.SDKUtil.validate(params, "UTF-8")) {// 服务器签名验证成功
//                String txnAmt = params.get("txnAmt");
//                double money = Double.parseDouble(txnAmt);
//                money = money / 100;
//                // 请在这里加上商户的业务逻辑程序代码
//                String order_id = params.get("orderId");
//                String origQryId = params.get("queryId");
//                String txnTime = params.get("txnTime");
//                // 获取通知返回参数，可参考接口文档中通知参数列表(以下仅供参考)
//                if ("00".equals(params.get("respCode"))) {
//                    out.println("success");
//                } else if (params.get("respCode").equals("01")) {
//                    // 处理中
//                    out.println("success");
//                } else {
//                    Map map = new HashMap<String, String>();
//                    map.put("indent_number", order_id);
//                    map.put("alipayNumber", origQryId);
//                    out.println("success");
//                }
//            } else {
//                out.println("fail");
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//
////    /**
////     * 快递鸟回调测试
////     * @param req
////     * @param resp
////     */
////    @RequestMapping(value = "kdnreturn.do")
////    public void kdnreturn(HttpServletRequest req, HttpServletResponse resp) {
////        Logger logger = Logger.getLogger(PayController.class);
////        logger.info("paramemap" + req.getParameterMap());
////
////        Map<String, Object> resultmap = new HashMap<String, Object>();
////
////        Map<String, String[]> map = req.getParameterMap();
////        if(!map.isEmpty()){
////            Set<String> keySet = map.keySet();
////            Iterator<String> keyIt = keySet.iterator();
////            while(keyIt.hasNext()){
////                String key = keyIt.next();
////                //这边实现对整个数组的判断。
////                String[] values=map.get(key);
////                for(int i=0;i<values.length;i++){
////                    if("RequestData".equals(key)) {
////                        String RequestData = values[i] + "";
////                        Map<String, Object> RequestDataMap = GeneralResult.jsonStrToMap(RequestData);
////                        String EBusinessID = RequestDataMap.get("EBusinessID") + "";
////                        String PushTime = RequestDataMap.get("PushTime") + "";
////                        resultmap.put("EBusinessID", EBusinessID);
////                        resultmap.put("UpdateTime", PushTime);
////                    }
////                    logger.info("key:" + key + ",values:" + values[i]);
////                }
////            }
////        }
////        resultmap.put("Success", true);
////        resultmap.put("Reason", "");
////        Gson gson = new Gson();
////        String sJson = gson.toJson(resultmap);
////        GeneralResult.writeMessage(resp, sJson);
////    }
//
//    /**
//     * 支付宝退款回调
//     * @param request
//     * @param resp
//     */
//    @RequestMapping(value = "alipayrefund.do")
//    public void alipayrefund(HttpServletRequest request, HttpServletResponse resp) {
//        PrintWriter out;
//        Map<String,String> params = new HashMap<String,String>();
//        Map requestParams = request.getParameterMap();
//        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
//            String name = (String) iter.next();
//            String[] values = (String[]) requestParams.get(name);
//            String valueStr = "";
//            for (int i = 0; i < values.length; i++) {
//                valueStr = (i == values.length - 1) ? valueStr + values[i]
//                        : valueStr + values[i] + ",";
//            }
//            //乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
//            //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
//            params.put(name, valueStr);
//        }
//
//        //获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//        //批次号
//
//        try {
//            out = resp.getWriter();
//            String batch_no = new String(request.getParameter("batch_no").getBytes("ISO-8859-1"),"GBK");
//            String success_num = new String(request.getParameter("success_num").getBytes("ISO-8859-1"),"GBK");
//            String result_details = new String(request.getParameter("result_details").getBytes("ISO-8859-1"),"GBK");
//            //批量退款数据中转账成功的笔数
//
//
//            //批量退款数据中的详细信息
//
//            //获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以上仅供参考)//
//
//            if(AlipayNotify.verify(params)){//验证成功
//                //////////////////////////////////////////////////////////////////////////////////////////
//                //请在这里加上商户的业务逻辑程序代码
//
//                //——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
//
//                //判断是否在商户网站中已经做过了这次通知返回的处理
//                //如果没有做过处理，那么执行商户的业务程序
//                //如果有做过处理，那么不执行商户的业务程序
//
//                out.print("success");	//请不要修改或删除
//
//                //——请根据您的业务逻辑来编写程序（以上代码仅作参考）——
//
//                //////////////////////////////////////////////////////////////////////////////////////////
//            }else{//验证失败
//                out.print("fail");
//            }
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//    public static void main(String[] args) {
//        Map<String, String> map = new HashMap<>();
//        map.put("gmt_create", "2016-09-28 20:57:43");
//        map.put("notify_time", "2016-09-28 21:21:40");
//        map.put("gmt_payment", "2016-09-28 20:57:44");
//        map.put("subject", "七星云商城");
//        map.put("sign", "FrrkX7ZBf34cudz6QnaGNWo3fETLEifYW5IOZKnbwPsxpDXSKGF4NyW1xkup1k1/v79IORvjOgnABbbQegrQDiT/LUTBBbygZnyMu7Rxcl0Dc4dD305qRbnraAM+3NUUfEtEyZk91cIyZWtMVchyepl7ggSfHDbo7OML6KsGQi4=");
//        map.put("buyer_id", "2088702047301590");
//        map.put("body", "b58f48f2e2c696bba065ddc07419f1fkjy");
//        map.put("notify_id", "trade_status_sync");
//        map.put("notify_type", "f6570208273f491eb0e224e9d2133ed3");
//        map.put("out_trade_no", "购买商品");
//        map.put("total_amount", "0.01");
//        map.put("trade_status", "TRADE_SUCCESS");
//        map.put("trade_no", "2016092821001004590254800265");
//        map.put("sign_type", "RSA");
//        map.put("app_id", "2016081901772098");
//        map.put("seller_id", "2088221249393173");
//        boolean flag = false;
//        flag = AlipayNotify.verify(map);
//        System.out.println(flag);
//        try {
//            flag = AlipaySignature.rsaCheckV1(map, AlipayConfig.ali_public_key, AlipayConfig.input_charset);
//        } catch (AlipayApiException e) {
//            e.printStackTrace();
//        }
//        System.out.println(flag);
//    }
}
